/**
 * Partie admin : boites modales pour suppression et modification d'un mot
 */

$(document).ready(function(){
    /*variables generales*/
    var monid;
    var tr;
    var statmodified;
    var tdstatut;
                                   
    $( "#dialog:ui-dialog" ).dialog( "destroy" );
               
    /*recuperation des valeurs a mettre dans le formulaire modal*/
    var mot = $( "#mot" ),
    word = $( "#word" ),
    statut = $( "#statut" ),
    allFields = $( [] ).add( mot ).add( word ).add( statut ),
    tips = $( ".validateTips" );

    function updateTips( t ) {
        tips
        .text( t )
        .addClass( "ui-state-highlight" );
        setTimeout(function() {
            tips.removeClass( "ui-state-highlight", 1500 );
        }, 500 );
    }

    function checkLength( o, n, min, max ) {
        if ( o.val().length > max || o.val().length < min ) {
            o.addClass( "ui-state-error" );
            updateTips( "Length of " + n + " must be between " +
                min + " and " + max + "." );
            return false;
        } else {
            return true;
        }
    }

    function checkRegexp( o, regexp, n ) {
        if ( !( regexp.test( o.val() ) ) ) {
            o.addClass( "ui-state-error" );
            updateTips( n );
            return false;
        } else {
            return true;
        }
    }
                
    /*boite de dialogue form modifier*/
    $( "#dialog-form" ).dialog({
        autoOpen: false,
        height: 350,
        width: 350,
        modal: true,
        buttons: {
            "Modifier une entrée": function() {
                var bValid = true;
                allFields.removeClass( "ui-state-error" );
                
                //check de la valeur des champs a soumettre
                bValid = bValid && checkLength( mot, "mot", 0, 25 );
                bValid = bValid && checkLength( word, "word", 0, 25 );
                bValid = bValid && checkLength( statut, "statut", 0, 1 );

                bValid = bValid && checkRegexp( mot, /^([a-zA-ZÀ-ÿ])+$/, "Un mot est une suite de lettres." );
                bValid = bValid && checkRegexp(word, /^([a-zA-Z])+$/, "Un 'word' est une suite de lettres, mais en anglais et sans accent!" );
                

                if ( bValid ) {
                    var stat=$('#statut').val();
                    (stat != tdstatut) ? statmodified=true : statmodified=false;
                    var mo=$('#mot').val();
                    var wo=$('#word').val();
                    var dataString = 'id='+monid+'&fr='+ mo +'&en='+wo+'&statut='+stat;
                    
                    //requete ajac de modification du mot
                    $.ajax({
                        type: "POST",
                        url: "ajax/miseajour.php",
                        data: dataString,
                        cache: false,
                        success: function(){
                            //modification du mot dans le bon tableau de statut
                            if (!statmodified){
                                tr.find('td:eq(0)').text(mo);
                                tr.find('td:eq(1)').text(wo);
                                tr.find('td:eq(2)').text(stat);
                                tr.find('td:eq(3)').text(monid);
                                tr.fadeIn(1000);
                            }else {
                                tr.hide();
                                if (stat=='1'){
                                    $( "#statutOK tbody" ).append( tr);
                                }else if (stat=='0'){
                                    $( "#statutNC tbody" ).append( tr);
                                }
                                tr.find('td:eq(0)').text(mo);
                                tr.find('td:eq(1)').text(wo);
                                tr.find('td:eq(2)').text(stat);
                                tr.find('td:eq(3)').text(monid);
                                tr.fadeIn(1000);
                            }
                        }  
                                                        
                    });
                    
                    //fermeture de la boite de dialogue                                  
                    $( this ).dialog( "close" );
                }
            },
            Cancel: function() {
                
                //fermeture de la boite de dialogue au clic du close
                $( this ).dialog( "close" );
            }
        },
        close: function() {
            allFields.val( "" ).removeClass( "ui-state-error" );
        }
    });

   
    //boite de dialogue supprimer        	
    $( "#dialog-confirm" ).dialog({
        resizable: false,
        height:200,
        modal: true,
        autoOpen: false,
        buttons: {
            "Supprimer": function() {
                var dataString='id='+monid+'&suppr=1';
                $.ajax({
                    type: "POST",
                    url: "ajax/miseajour.php",
                    data: dataString,
                    cache: false,
                    success: function(){
                        tr.remove();
                    }                                                  
                });
                $( this ).dialog( "close" );
            },
            Cancel: function() {
                $( this ).dialog( "close" );
            }
        }
    });
    
    
    //au clic d'un lien "modifier"
    $( "a.modifier" )
    .click(function() {
        
        //recuperation de la ligne du tableau cliquée
        tr=$(this).parent().parent();
        
        //recuperation des valeurs de la ligne            
        var tdmot=tr.find('td:eq(0)').text();
        var tdword=tr.find('td:eq(1)').text();
        tdstatut=tr.find('td:eq(2)').text();
        monid=tr.find('td:eq(3)').text();
                                       
        $("#mot").val(tdmot);
        $("#word").val(tdword);
        $("#statut").val(tdstatut);
                                                                
        $( "#dialog-form" ).dialog( "open" );
        return false;
    });
                                    
    //au clic d'un lien supprimer                                
    $( "a.supprimer" ).click(function() { 
        //recuperation de la ligne du tableau cliquée
        tr=$(this).parent().parent();
        
        //recuperation des valeurs de la ligne
        monid=tr.find('td:eq(3)').text();
        $("#dialog-confirm").dialog('open');
        return false;
    });
   
});